/**
 * @file      wdir.h
 * @copyright Copyright (c) 2020, ZCW Co., Ltd. All Rights Reserved.
 * @brief     brief
 * @author    caiwang213@qq.com
 * @date      2020-05-24 12:27:16
 *
 * @note
 *  wdir.h defines
 */
#ifndef __WDIR_H__
#define __WDIR_H__
#include "idir.h"

namespace log4x
{
class wdir : public idir
{
protected:
    virtual int         access(const string& pathname, int mode) override;

    virtual int         copy(const string& src, const string& dst) override;
    virtual void        copy_dir(const string& src, const string& dst) override;
    virtual void        remove(const string& file) override;

    virtual bool        is_dir(const string& path) override;
    virtual int         mk_dir(const string& path) override;
    virtual int         ls_dir(const string& path, vector<string>& files) override;

    virtual string      home(const string& user = "") override;
    virtual string      absolute_path(const string& relative_path) override;

    virtual int         stat(const string& path, struct stat& sb) override;
    virtual int         chmod(const string& path, uint32_t mode) override;
};
}
#endif
